package com.scalosoft.action.ui;

import java.util.ArrayList;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.validation.SkipValidation;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;

@SuppressWarnings("serial")
@Namespace(value="/ui")
@Result(location = "/ui/Register.jsp")
public class Register extends ActionSupport implements Preparable{

	private String userName;

	private String password;

	private String gender;

	private String about;

	private String country;

	private ArrayList<Country> countryList;

	private String[] community;

	private ArrayList<String> communityList;

	private Boolean  mailingList;
	
	@Action(value="Start")
	@SkipValidation
	public String init() {
		return SUCCESS;
	}
	

	public void prepare() {

		countryList = new ArrayList<Country>();
		countryList.add(new Country(1, "India"));
		countryList.add(new Country(2, "USA"));
		countryList.add(new Country(3, "France"));

		communityList = new ArrayList<String>();
		communityList.add("Java");
		communityList.add(".Net");
		communityList.add("SOA");

		community = new String[]{"Java",".Net"};
		mailingList = true;

		//return "populate";
	}
	
	@Action(value = "Register", results = {
			@Result(name = "success", location = "/ui/Success.jsp"),
			@Result(name = "populate", location = "/ui/Register.jsp"),
			@Result(name = "input", location = "/ui/Register.jsp") 		
	})
	public String execute() {
		return SUCCESS;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getAbout() {
		return about;
	}

	public void setAbout(String about) {
		this.about = about;
	}

	public String getCountry() {
		return country;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public ArrayList<Country> getCountryList() {
		return countryList;
	}

	public void setCountryList(ArrayList<Country> countryList) {
		this.countryList = countryList;
	}

	public String[] getCommunity() {
		return community;
	}

	public void setCommunity(String[] community) {
		this.community = community;
	}

	public ArrayList<String> getCommunityList() {
		return communityList;
	}

	public void setCommunityList(ArrayList<String> communityList) {
		this.communityList = communityList;
	}

	public Boolean getMailingList() {
		return mailingList;
	}

	public void setMailingList(Boolean mailingList) {
		this.mailingList = mailingList;
	}
	
	public void validate() {
		if (userName.length() == 0)
			addFieldError("userName", "campo obbligatorio");
		if (password.length() == 0)
			addFieldError("password", "campo obbligatorio");
		if (gender==null || gender.length() == 0)
			addFieldError("gender", "selezionare checkbox");
	}

}